home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-19 / surfsrc3.zip / SHAREDEC.PAS < prev    next >
Pascal/Delphi Source File  |  1991-09-29  |  5KB  |  118 lines

  1. unit SHAREDEC;
  2.  
  3. { This file just contains declarations that are shared between units. }
  4.  
  5. INTERFACE
  6.  
  7. const MAXMATL = 50;     { maximum # of materials in entire solid }
  8.       MAXLITE = 20;     { maximum # of light sources }
  9.       MAXPICBUF = 8;    { max # 64K picture buffers available per screen }
  10.                         { this should be adequate for Super VGA too }
  11.       MAXVAR = 20;      { maximum # of numeric inputs on a line }
  12.       MAXCMMD = 34;     { # of valid SURFMODL commands }
  13.       MAXPARM = 6;      { # of valid SURFMODL symbolic parameters }
  14.       MAXALLOC = 65520; { maximum # of bytes TP can allocate in a
  15.                           single GETMEM call
  16.                         }
  17.       MAXCOLORS = 256;  { max # colors SURFMODL can handle at a time }
  18.  
  19. type  picbuf = array[1..MAXPICBUF] of pointer;
  20.       nlpic = array[1..MAXPICBUF] of longint;
  21.       xmsbuf = array[1..MAXPICBUF] of word;
  22.       buffertype = array[1..MAXPICBUF] of integer;
  23.       text80 = string[80];
  24.       text255 = string[255];
  25.       vartype = array[1..MAXVAR] of real;
  26.  
  27. type
  28.   ColorValue     = record
  29.                      Rvalue, Gvalue, Bvalue : byte;
  30.                    end;
  31.   SurfPalette    = array[0..MAXCOLORS] of ColorValue;
  32.   RowArray       = array[0..79] of byte;
  33.  
  34. { This is the list of valid commands recognized by chkcmmd: }
  35. type  cmmdtype =
  36. ( CMD_INVALID, CMD_NONE, CMD_GRSYS, CMD_GRMODE, CMD_VERSION, CMD_EYE,
  37.   CMD_FOCAL, CMD_MAGNIFY, CMD_VIEWTYPE, CMD_MATL, CMD_MATCONST,
  38.   CMD_MATCOLOR, CMD_MATAMBIENT, CMD_MATRGB, CMD_LIGHT, CMD_LTCOORD,
  39.   CMD_LTINTENS, CMD_GOURAUD, CMD_SHADOWING, CMD_AXISSHOW, CMD_AXISLEN,
  40.   CMD_AXISCOLOR, CMD_DITHER, CMD_RANDOM, CMD_BORDERS, CMD_TITLE,
  41.   CMD_MAXVERT, CMD_NSIDES, CMD_NODES, CMD_SURFACES, CMD_TEXTCOL,
  42.   CMD_BGCOL, CMD_GRAPHTEXT, CMD_REVVIDEO, CMD_SHOWTITLE, CMD_XYADJUST
  43. );
  44.  
  45. { And this is the list of valid symbolic parameters recognized by chkcmmd: }
  46. type  parmtype =
  47. ( PRM_NONE, PRM_ON, PRM_OFF, PRM_STD, PRM_XY, PRM_XZ, PRM_YZ
  48. );
  49.  
  50. { Following holds a list of valid commands in SURFMODL: }
  51. type cmmdlist = record
  52.     Cname: string[10];      { name of command }
  53.     Ctype: cmmdtype;
  54.     Sym_param: boolean;     { is parameter symbolic? }
  55. end;
  56.  
  57. { And this holds a list of valid parameters: }
  58. type parmlist = record
  59.     Pname: string[10];
  60.     Ptype: parmtype;
  61. end;
  62.  
  63. { These are all the valid SURFMODL commands: }
  64. const cmmd_name: array[1..MAXCMMD] of cmmdlist = (
  65.   (Cname: 'GRSYS';      Ctype: CMD_GRSYS;       Sym_param: FALSE),
  66.   (Cname: 'GRMODE';     Ctype: CMD_GRMODE;      Sym_param: FALSE),
  67.   (Cname: 'VERSION';    Ctype: CMD_VERSION;     Sym_param: FALSE),
  68.   (Cname: 'EYE';        Ctype: CMD_EYE;         Sym_param: FALSE),
  69.   (Cname: 'FOCAL';      Ctype: CMD_FOCAL;       Sym_param: FALSE),
  70.   (Cname: 'MAGNIFY';    Ctype: CMD_MAGNIFY;     Sym_param: FALSE),
  71.   (Cname: 'VIEWTYPE';   Ctype: CMD_VIEWTYPE;    Sym_param: TRUE),
  72.   (Cname: 'MATL';       Ctype: CMD_MATL;        Sym_param: FALSE),
  73.   (Cname: 'MATCONST';   Ctype: CMD_MATCONST;    Sym_param: FALSE),
  74.   (Cname: 'MATCOLOR';   Ctype: CMD_MATCOLOR;    Sym_param: FALSE),
  75.   (Cname: 'MATAMBIENT'; Ctype: CMD_MATAMBIENT;  Sym_param: FALSE),
  76.   (Cname: 'MATRGB';     Ctype: CMD_MATRGB;      Sym_param: FALSE),
  77.   (Cname: 'LIGHT';      Ctype: CMD_LIGHT;       Sym_param: FALSE),
  78.   (Cname: 'LTCOORD';    Ctype: CMD_LTCOORD;     Sym_param: FALSE),
  79.   (Cname: 'LTINTENS';   Ctype: CMD_LTINTENS;    Sym_param: FALSE),
  80.   (Cname: 'GOURAUD';    Ctype: CMD_GOURAUD;     Sym_param: FALSE),
  81.   (Cname: 'SHADOWING';  Ctype: CMD_SHADOWING;   Sym_param: TRUE),
  82.   (Cname: 'AXISSHOW';   Ctype: CMD_AXISSHOW;    Sym_param: TRUE),
  83.   (Cname: 'AXISLEN';    Ctype: CMD_AXISLEN;     Sym_param: FALSE),
  84.   (Cname: 'AXISCOLOR';  Ctype: CMD_AXISCOLOR;   Sym_param: FALSE),
  85.   (Cname: 'DITHER';     Ctype: CMD_DITHER;      Sym_param: FALSE),
  86.   (Cname: 'RANDOM';     Ctype: CMD_RANDOM;      Sym_param: FALSE),
  87.   (Cname: 'BORDERS';    Ctype: CMD_BORDERS;     Sym_param: TRUE),
  88.   (Cname: 'TITLE';      Ctype: CMD_TITLE;       Sym_param: FALSE),
  89.   (Cname: 'MAXVERT';    Ctype: CMD_MAXVERT;     Sym_param: FALSE),
  90.   (Cname: 'NSIDES';     Ctype: CMD_NSIDES;      Sym_param: FALSE),
  91.   (Cname: 'NODES';      Ctype: CMD_NODES;       Sym_param: FALSE),
  92.   (Cname: 'SURFACES';   Ctype: CMD_SURFACES;    Sym_param: FALSE),
  93.   (Cname: 'TEXTCOL';    Ctype: CMD_TEXTCOL;     Sym_param: FALSE),
  94.   (Cname: 'BGCOL';      Ctype: CMD_BGCOL;       Sym_param: FALSE),
  95.   (Cname: 'GRAPHTEXT';  Ctype: CMD_GRAPHTEXT;   Sym_param: FALSE),
  96.   (Cname: 'REVVIDEO';   Ctype: CMD_REVVIDEO;    Sym_param: TRUE),
  97.   (Cname: 'SHOWTITLE';  Ctype: CMD_SHOWTITLE;   Sym_param: TRUE),
  98.   (Cname: 'XYADJUST';   Ctype: CMD_XYADJUST;    Sym_param: FALSE)
  99. );
  100.  
  101. { And these are the valid symbolic parameters: }
  102. const parm_name: array[1..MAXPARM] of parmlist = (
  103.   (Pname: 'ON';         Ptype: PRM_ON),
  104.   (Pname: 'OFF';        Ptype: PRM_OFF),
  105.   (Pname: 'STD';        Ptype: PRM_STD),
  106.   (Pname: 'XY';         Ptype: PRM_XY),
  107.   (Pname: 'XZ';         Ptype: PRM_XZ),
  108.   (Pname: 'YZ';         Ptype: PRM_YZ)
  109. );
  110.  
  111. var
  112.   Redmax, Grnmax, Blumax: array[1..MAXMATL] of integer;
  113.      { RGB values of matl at full intensity }
  114.  
  115. IMPLEMENTATION
  116.  
  117. END.
  118.